createNativePhpParser(); $cachedParser = $this->createPHPStanParser($nativePhpParser); return new \Rector\PhpDocParser\PhpParser\SmartPhpParser($cachedParser); } private function createNativePhpParser() : Parser { $parserFactory = new ParserFactory(); $lexerEmulative = new Emulative(['usedAttributes' => ['comments', 'startLine', 'endLine', 'startTokenPos', 'endTokenPos']]); return $parserFactory->create(ParserFactory::PREFER_PHP7, $lexerEmulative); } private function createPHPStanParser(Parser $parser) : CachedParser { $nameResolver = new NameResolver(); $simpleParser = new SimpleParser($parser, $nameResolver); return new CachedParser($simpleParser, 1024); } }